Page({
    /**
     * 页面的初始数据
     */
    data: {
      cartList: [],         // 购物车列表，初始化为空
      isAllChecked: false,  // 全选状态
      totalPrice: 0,        // 合计价格
      selectedCount: 0      // 已选商品数量
    },
  
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
      // 在页面加载时，调用方法获取购物车数据
      this.fetchCartData();
    },
  
    /**
     * 模拟从后端获取购物车数据
     * 后续对接真实API时，只需替换此方法内的逻辑
     */
    fetchCartData: function() {
      // 显示加载提示
      wx.showLoading({
        title: '加载中...',
      });
  
      // 使用 setTimeout 模拟异步网络请求
      setTimeout(() => {
        // 1. Mock 数据（未来将被真实接口返回的数据替换）
        const mockCartData = [
          {
            id: 1,
            name: "时尚休闲运动鞋",
            spec: "黑色 / 42码",
            price: 299.00,
            quantity: 2,
            image: "/assets/images/my/avatar.jpg",
            checked: true
          },
          {
            id: 2,
            name: "纯棉舒适T恤",
            spec: "白色 / L",
            price: 89.00,
            quantity: 1,
            image: "/assets/images/my/avatar.jpg",
            checked: false
          },
          {
            id: 3,
            name: "潮流牛仔裤",
            spec: "蓝色 / 32码",
            price: 159.00,
            quantity: 1,
            image: "/assets/images/my/avatar.jpg",
            checked: true
          }
        ];
  
        // 2. 将 Mock 数据设置到页面 data 中
        this.setData({
          cartList: mockCartData
        }, () => {
          // 3. 数据设置完成后，计算总价和更新全选状态
          // 回调函数确保在 setData 完成后执行
          this.calculateTotal();
          this.updateAllCheckStatus();
        });
  
        // 隐藏加载提示
        wx.hideLoading();
  
      }, 1000); // 模拟1秒的网络延迟

    //   wx.request({
    //     url: 'https://your-backend-api.com/api/cart', // 替换为你的真实接口地址
    //     method: 'GET',
    //     header: {
    //       'content-type': 'application/json',
    //       // 可以在这里添加你的身份验证令牌，例如：
    //       // 'Authorization': 'Bearer ' + wx.getStorageSync('token')
    //     },
    //     success: (res) => {
    //       // 假设后端返回的数据格式是 { code: 200, data: [...] }
    //       if (res.statusCode === 200 && res.data.code === 200) {
    //         const realCartData = res.data.data; // 从返回结果中提取购物车列表
            
    //         this.setData({
    //           cartList: realCartData
    //         }, () => {
    //           this.calculateTotal();
    //           this.updateAllCheckStatus();
    //         });
    //       } else {
    //         // 处理错误情况
    //         wx.showToast({
    //           title: '加载购物车失败',
    //           icon: 'error'
    //         });
    //       }
    //     },
    //     fail: (err) => {
    //       // 处理网络请求失败
    //       wx.showToast({
    //         title: '网络请求错误',
    //         icon: 'error'
    //       });
    //       console.error("获取购物车数据失败:", err);
    //     },
    //     complete: () => {
    //       // 无论成功或失败，都隐藏加载提示
    //       wx.hideLoading();
    //     }
    //   });
    },
  
    /**
     * 切换商品选中状态
     */
    toggleCheck: function (e) {
      const index = e.currentTarget.dataset.index;
      const { cartList } = this.data;
      cartList[index].checked = !cartList[index].checked;
      this.setData({ cartList });
      this.calculateTotal();   // 重新计算总价
      this.updateAllCheckStatus(); // 更新全选按钮状态
    },
  
    /**
     * 增加商品数量
     */
    increaseQuantity: function (e) {
      const index = e.currentTarget.dataset.index;
      const { cartList } = this.data;
      cartList[index].quantity++;
      this.setData({ cartList });
      this.calculateTotal(); // 重新计算总价
    },
  
    /**
     * 减少商品数量
     */
    decreaseQuantity: function (e) {
      const index = e.currentTarget.dataset.index;
      const { cartList } = this.data;
      if (cartList[index].quantity > 1) {
        cartList[index].quantity--;
        this.setData({ cartList });
        this.calculateTotal(); // 重新计算总价
      }
    },
  
    /**
     * 删除购物车商品
     */
    deleteItem: function (e) {
      const index = e.currentTarget.dataset.index;
      const { cartList } = this.data;
      cartList.splice(index, 1);
      this.setData({ cartList });
      this.calculateTotal();      // 重新计算总价
      this.updateAllCheckStatus(); // 更新全选按钮状态
    },
  
    /**
     * 切换全选状态
     */
    toggleSelectAll: function () {
      const { isAllChecked, cartList } = this.data;
      const newCheckedStatus = !isAllChecked;
      cartList.forEach(item => {
        item.checked = newCheckedStatus;
      });
      this.setData({
        cartList,
        isAllChecked: newCheckedStatus
      });
      this.calculateTotal(); // 重新计算总价
    },
  
    /**
     * 计算总价和已选商品数量
     */
    calculateTotal: function () {
      const { cartList } = this.data;
      let totalPrice = 0;
      let selectedCount = 0;
      
      cartList.forEach(item => {
        if (item.checked) {
          totalPrice += item.price * item.quantity;
          selectedCount += item.quantity;
        }
      });
      
      this.setData({
        totalPrice: totalPrice.toFixed(2),
        selectedCount
      });
    },
  
    /**
     * 更新全选按钮状态
     */
    updateAllCheckStatus: function () {
      const { cartList } = this.data;
      const isAllChecked = cartList.length > 0 && cartList.every(item => item.checked);
      this.setData({ isAllChecked });
    },
  
    /**
     * 结算（跳转至结算页）
     */
    checkout: function () {
      const { selectedCount, cartList } = this.data;
      if (selectedCount === 0) {
        wx.showToast({
          title: '请选择商品',
          icon: 'none'
        });
        return;
      }
      
      // 传递选中商品信息到结算页
      const selectedItems = cartList.filter(item => item.checked);
      wx.navigateTo({
        url: '/pages/checkout/checkout',
        success: function(res) {
          res.eventChannel.emit('acceptDataFromCart', { selectedItems });
        }
      });
    }
  });